#!/usr/bin/env python
# -*- coding: UTF-8 -*-
'''
@Project ：图灵学习 
@File    ：17.线程池的创建.py
@IDE     ：PyCharm 
@Author  ：ChenLiGao
@Date    ：2024-11-04 15:00
'''
import time
from concurrent.futures import ThreadPoolExecutor

def get_html(time_attr):
    time.sleep(time_attr)
    print(f"获取网站页数成功：{time_attr}")
    return time_attr

# 1.创建线程池对象
pool = ThreadPoolExecutor(max_workers=1)

# 2.提交任务到线程池
future1 = pool.submit(get_html, 3)
future2 = pool.submit(get_html, 2)

# time.sleep(4)
# 3.如何判断提交的任务是否完成,done方法返回的是一个布尔值，True代表完成
print(f"任务1是否完成：{future1.done()}")

# # 4.线程池支持取消一个任务，如果当前任务已经在线程池中则无法取消
# print(f"取消任务2：{future2.cancel()}")

# 5.获取任务返回值
print(f"任务1的返回值为：{future1.result()}")

# 6.关闭线程池
pool.shutdown() # 关闭的意思是不在接收新的任务，如果还有未完成的任务，会执行完